package com.hmsproject.db;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.hmsproject.datastructures.Hotel;
import com.hmsproject.datastructures.User;
import com.hmsproject.datastructures.deal.Criterion;
import com.hmsproject.datastructures.deal.Deal;
import com.hmsproject.datastructures.deal.DealDetails;
import com.hmsproject.datastructures.enums.DealTypeEnum;
import com.hmsproject.datastructures.event.Event;
import com.hmsproject.datastructures.event.EventSchedule;
import com.hmsproject.datastructures.transactions.Transaction;
import com.hmsproject.datastructures.transactions.UserPreferences;
import com.hmsproject.livedata.LiveDealData;
import com.hmsproject.search.bean.HotelInfo;
import com.hmsproject.search.bean.SearchBean;
import com.mymobile.showcase.mobile.ForgotPasswordView;
import com.mymobile.showcase.mobile.SignInUserView;
import com.mymobile.showcase.mobile.SignUpUserView;


public abstract class HMSDBConnection {
	
	public void updateUser(User user)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for updateUser()");
	}
	
	public User getUser(String emailAddress)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for getUser()");
		return null;
	}	
	
	public boolean changePassword(String emailAddress,String newPassword)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for changePassword()");
		return false;
	}		
		
	public boolean verifyUser(String verificationCode) throws Exception
	{
		System.out.println("IMPLEMENTATION NOT FOUND for verifyUser()");
		return false;
	}	
	
	public long signUpUser(SignUpUserView signUpUserView) throws Exception{
		System.out.println("IMPLEMENTATION NOT FOUND for signUpUser()");
		return 0L;
	}
	
	public boolean signInUser(SignInUserView signUpUserView) {
		System.out.println("IMPLEMENTATION NOT FOUND for signInUser()");
		return false;
	}	
	
	public List<Hotel> searchHotels(SearchBean searchBean)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for searchHotels()");
		return null;
	}
	
	public List<Hotel> searchHotels(String hotelIdList)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for searchHotels()");
		return null;
	}	
	
	public List<Hotel> fetchHotels(boolean isDealPresent,Date checkinDate,Date checkoutDate,String location)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for fetchHotels()");
		return null;
	}
	
	public String getHotelIds(Date checkinDate,Date checkoutDate,String location)
	{
		System.out.println("IMPLEMENTATION NOT FOUND for getHotelIds()");
		return null;
	}	
		
	
	public void insertHotel(Hotel hotels){
		System.out.println("IMPLEMENTATION NOT FOUND for insertHotel()");
	}
	
	public String forgotPassword(ForgotPasswordView forgotPasswordView) throws Exception{
		System.out.println("IMPLEMENTATION NOT FOUND for forgotPassword()");
		return null;
	}
	
	public Deal getDeal(String dealId){
		System.out.println("IMPLEMENTATION NOT FOUND for getDeal()");
		return null;		
	}

	public Transaction getTransaction(String userId,String dealId){
		System.out.println("IMPLEMENTATION NOT FOUND for getTransaction()");
		return null;		
	}
	
	

	public List<Transaction> getTransactionList(String userId){
		System.out.println("IMPLEMENTATION NOT FOUND for getTransactionList()");
		return null;		
	}
	
	public List<Transaction> getTransactionListForDeal(String dealId){
		System.out.println("IMPLEMENTATION NOT FOUND for getTransactionListForDeal()");
		return null;		
	}	
	
	public Transaction buyDeal(String userId, String dealId, UserPreferences userPreferences,Date transactionDate, int noOfRoomsBooked,
			LiveDealData livedealData){
		System.out.println("IMPLEMENTATION NOT FOUND for buyDeal()");
		return null;		
	}

	public Event createEvent (String eventName, String eventLocation,EventSchedule eventSchedule){
		System.out.println("IMPLEMENTATION NOT FOUND for createEvent()");
		return null;		
	}
	
	public Event createEvent (Event event){
		System.out.println("IMPLEMENTATION NOT FOUND for createEvent()");
		return null;		
	}	
	
	public Deal createDeal(String dealName,String hotelId,Date cutOff,DealDetails dealDetails, List<Event> events){
		System.out.println("IMPLEMENTATION NOT FOUND for createDeal()");
		return null;	
	}
	
	public Deal createDeal(Deal deal){
		System.out.println("IMPLEMENTATION NOT FOUND for createDeal()");
		return null;	
	}	
	
	public List<Deal> getDealList(String eventId){
		System.out.println("IMPLEMENTATION NOT FOUND for getDealList()");
		return null;		
	}	
	
	public Deal getDeal(String hotelid, Date checkinDate, Date checkoutDate){
		System.out.println("IMPLEMENTATION NOT FOUND for getDeal()");
		return null;		
	}	
	
	public List<Deal> getDeals(DealTypeEnum dealTypeEnum, String hotelid){
		System.out.println("IMPLEMENTATION NOT FOUND for getDeals()");
		return null;		
	}	
	
	
	public LiveDealData getLiveDealData(String dealId){
		System.out.println("IMPLEMENTATION NOT FOUND for getLiveDealData()");
		return null;
	}
	
	public List<HotelInfo> searchHotelsExpedia(SearchBean searchBean){
		System.out.println("IMPLEMENTATION NOT FOUND for searchHotelsExpedia()");
		return null;
	}
	
}
